const trigger = (el, type) => {
    const e = document.createEvent('HTMLEvents');
    e.initEvent(type, true, true);
    el.dispatchEvent(e);
};
/** 
 * 自定义数字验证
 * 指令名称：v-Int (默认限制输入0-9数字)
 * 指令修饰符：v-Int.float (默认显示输入0-9.数字及小数点)
 * 指令参数：v-Int={isNegative:true} or v-Int.float={isNegative:true}  （允许输入负数）
 */
export default {
    bind: function (el, binding) {
        const isFloat = binding.modifiers.float;
        let params = binding.value;
        const input = el.tagName === 'INPUT' ? el : el.querySelector('input');
        input.onkeyup = function (e) {
            if (isFloat) {
                if (params && params.isNegative) {
                    if (/[\-]/.test(input.value)) {
                        input.value = '-' + input.value.replace(/[^0-9.]/g, '');
                    } else {
                        input.value = input.value.replace(/[^0-9.]/g, '');
                    }
                } else {
                    input.value = input.value.replace(/[^0-9.]/g, '');
                }
                input.value = input.value.substring(0, input.value.indexOf('.') + 1) + input.value.substring(input.value.indexOf('.') + 1).replace(/[^0-9]/g, '');
            } else {
                if (params && params.isNegative && /[\-]/.test(input.value)) {
                    input.value = '-' + input.value.replace(/[^0-9]/g, '');
                } else {
                    input.value = input.value.replace(/[^0-9]/g, '');
                }
            }
            trigger(input, 'input');
        };
    }
};